package com.yxj.myrefleect5;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Field;

public class MyReflectDemo {
    public static void main(String[] args) throws IOException, IllegalAccessException {

        //对于任意一个对象，都可以吧对象所有的字段名和值，保存到文件中去

        Student s =  new Student("张三",3,'女',167,"学习");
        Teacher t = new Teacher("乃龙",10000);
        saveObject(s);
    }

    //把对象里面所有的成员变量名和值保存到本地文件中
    private static void saveObject(Object obj) throws IOException, IllegalAccessException {
        //1.获取字节码文件的对象
        Class clazz  = obj.getClass();
        //2.创建IO流
        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\桌面\\MyReflect\\a.txt"));
        //3.获取所有的成员变量
        Field[] fields = clazz.getDeclaredFields();
        for(Field field : fields) {
            field.setAccessible(true);
            //获取成员变量名字
            String name = field.getName();
            //获取成员变量的值
            Object value = field.get(obj);
            //写数据
            bw.write(name+"="+value);
            bw.newLine();
        }
        bw.close();
    }
}
